home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / TP040592.ARJ / 04-05-92.TPC
Text File  |  1992-04-05  |  69KB  |  1,891 lines

  1.  
  2. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3.  
  4. Conference 4
  5. Date       03-30-92 01:54:23
  6. From       Trevor Carlsen
  7. To         Joseph Crea
  8. Subject    Re: Obsolete Pascal??
  9.  
  10.  
  11.  
  12.  JC> ... I have used Doug Cooper's _Standard Pascal User
  13.  JC> Reference Manual_ (published by W. W. Norton & Co., ISBN
  14.  JC> 0-393-30121-4) extensively and can recommend it highly.
  15.  
  16. Thanks. I've not seen this and will try and purchase it immediately.  Do you
  17. know if it contains full details of the proposed ANSI standard?  The copy
  18. I ordered from Global Engineering Documents (thanks Scott) has so far failed
  19. to materialise.
  20.  
  21.  JC> ... Contrary to your statements, an 'absolutely "standard"'
  22.  JC> compiler can be commercially viable since the Standard does
  23.  JC> not disallow extensions ...
  24.  
  25. Fair comment.  However to be more accurate what I really meant was that I
  26. do not believe that it is commercially viable to program using only standard
  27. Pascal.  I accept that a compiler that will compile stock standard code can
  28. be commercially viable because of its extensions to the language.
  29.  
  30. TeeCee
  31.  
  32.  
  33.  
  34. --- TC-ED   v2.01  
  35.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  36.  * Tossed by SFToss v1.00b on 92/03/30  19:27:51
  37.  
  38. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  39.  
  40. Conference 4
  41. Date       03-30-92 02:03:58
  42. From       Trevor Carlsen
  43. To         Joy Mukherjee
  44. Subject    Entry To competition
  45.  
  46.  
  47.  
  48.  JM> Wasn't the item entered supposed to be a unit that could
  49.  JM> essentially be used by any program and still serve a useful
  50.  JM> purpose?  Something like a unit which calculated the running
  51.  JM> time of the program or what not?  If not, I'd like to submit
  52.  JM> my CLMR which is just a program to read QWK messages of more
  53.  JM> than 150 lines.
  54.  
  55. It was for any hint, unit, program that was useful.  As I no longer have CLMR
  56. on my base please netmail it to me.
  57.  
  58. BTW, even though I usually try to read all messages in this conference, time
  59. constraints make it impossible at times - I will be absent again for a few
  60. days later this week - and if you spell my name incorrectly I can easily miss
  61. your message as my reader/editor looks for messages with my name somewhere
  62. in the header and/or text. (No 'O' in Carlsen :-)).
  63.  
  64. TeeCee
  65.  
  66. --- TC-ED   v2.01  
  67.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  68.  * Tossed by SFToss v1.00b on 92/03/30  19:27:51
  69.  
  70. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  71.  
  72. Conference 4
  73. Date       03-30-92 07:54:56
  74. From       Dj Murdoch
  75. To         Harald Harms
  76. Subject    Re: Need help on TPU files.
  77.  
  78.   HH> Saesoft (R) [E]Turbo Pascal TPU [C6]Convertor - Version 1.01
  79.  HH> Copyright (C) Saesoft International 1983 - 1992.  All rights reserved.
  80.  
  81.  HH> Registered to: Harald_Harms
  82.  
  83.  HH> Warning!  This utility works  with most TPU-s, this does  NOT mean that
  84.  HH> a converted TPU  will  perform correctly, this  utility overrides  that
  85.  HH> what should not be overridden and such a TPU may blowup if the internal
  86.  HH> library code pointers are invalidly linked with non-standard TPU-s.
  87.  
  88. But what does it do?  They're asking for $20, sight unseen, and they're not
  89. even clear as to what they're claiming the product will do.
  90.  
  91. --- Msg V3.2
  92.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  93.  * Tossed by SFToss v1.00b on 92/03/31  11:11:07
  94.  
  95. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  96.  
  97. Conference 4
  98. Date       03-31-92 15:21:41
  99. From       Trevor Carlsen
  100. To         Jud Mccranie
  101. Subject    constants in Pascal
  102.  
  103.  
  104.  
  105.  JM> This brings up a point about how Pascal handles constants.  Should
  106.  JM> they be changable or not in the body of the program?  There are some
  107.  JM> arguements either way.  Making them not changable is safer, making
  108.  JM> them changable is more convienent.  Would it be nice to have both
  109.  JM> kinds?  Maybe.  In TP (at least) you can change the contstant in
  110.  JM> the body if and only if you give it a type.  This is a way to
  111.  JM> distinguish between the two kinds.  Unfortunately, in some cases you
  112.  JM> must give a type to tell it what you want.
  113.  
  114. In TP at least we have the best of both worlds, although to be realistic the
  115. typed constants are really only initialised variables.
  116.  
  117. TeeCee
  118.  
  119. --- TC-ED   v2.01  
  120.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  121.  * Tossed by SFToss v1.00b on 92/03/31  20:20:26
  122.  
  123. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  124.  
  125. Conference 4
  126. Date       03-31-92 15:26:36
  127. From       Trevor Carlsen
  128. To         Jud Mccranie
  129. Subject    Re: Power of assemb vs Pascal
  130.  
  131.  
  132.  
  133.  TC> As assembler is so low-level, recursion is handled by the
  134.  TC> programmer and the stack is used.  As this is exactly what is
  135.  TC> happening anyway, it is no different, and no more difficult,
  136.  TC> than normal assembler programming.
  137.  
  138.  JM> But it is more difficult than doing it in a more powerful language.
  139.  
  140. You get points for trying but that's about all! :-)
  141.  
  142.  TC> Your assembly "programmer" friend is obviously not very
  143.  TC> competent in programming.
  144.  
  145.  JM> He's probably the second best programmer I know personally.  (He is
  146.  JM> not the one who asks why not allow conditionals at the top and bottom
  147.  JM> of the loop.)  He makes a ton of money - several times as much as I
  148.  JM> do...
  149.  
  150. MMmmm... Programming ability and money making ability from programming are
  151. not necessarily synonomous!  
  152.  
  153. TeeCee
  154.  
  155. --- TC-ED   v2.01  
  156.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  157.  * Tossed by SFToss v1.00b on 92/03/31  20:20:26
  158.  
  159. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  160.  
  161. Conference 4
  162. Date       03-31-92 15:43:08
  163. From       Trevor Carlsen
  164. To         Greg Smith
  165. Subject    Pascal 6.0
  166.  
  167.  
  168.  
  169.  GS> After looking over the algorithms, it seems that an array would be
  170.  GS> quicker for most applications, but when you're sorting a doubly linked
  171.  GS> list of 1-2k structures, it's much more efficient to move a couple 4
  172.  GS> byte pointers around than it is to move the full structure.
  173.  
  174. I agree but you do not need a linked list to do that!
  175.  
  176. TeeCee
  177.  
  178. --- TC-ED   v2.01  
  179.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  180.  * Tossed by SFToss v1.00b on 92/03/31  20:20:26
  181.  
  182. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  183.  
  184. Conference 4
  185. Date       03-31-92 15:44:39
  186. From       Trevor Carlsen
  187. To         Tony Mann
  188. Subject    Sets
  189.  
  190.  
  191.  
  192.  TM>    Okay, the S.Flag has to be evaluated as a Boolean.  Its very easy 
  193.  
  194.  TM> to evaluate them as follows:
  195.  
  196.  TM>    If NotValidated in S.Flag then Writeln('The file is not Validated') 
  197.  
  198.  TM> else Writeln('The File is Validated');
  199.  
  200.  TM>    Now if you want to change the validated status of the
  201.  TM> file just create a new set adding or omitting the
  202.  TM> NotValidated as follows:
  203.  
  204.  TM>    NewFlags:=FlagRecSet;
  205.  TM>    NewFlags:=(OwnerRestricted, UUF6, UUF5, UUF4, UUF3, UUF2, UUF1);
  206.  
  207.  TM>    If NotValidated in S.Flag then S.Flag:=NewFlags;
  208.  
  209.  TM>    This crude example would then validate the file, since
  210.  TM> "NotValidated" is no    longer in the FlagRecSet.  To
  211.  TM> unvalidate the file just create a new    FlagRecSet
  212.  TM> containing NotValidated.
  213.  
  214. The above is unnecessary.  To delete NotValidated from S.Flag -
  215.  
  216.   S.Flag := S.Flag - [NotValidated];
  217.  
  218. to add NotValidated to S.Flag -
  219.  
  220.   S.Flag := S.Flag + [NotValidated];
  221.  
  222. TeeCee
  223.  
  224.  
  225.  
  226. --- TC-ED   v2.01  
  227.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  228.  * Tossed by SFToss v1.00b on 92/03/31  20:20:26
  229.  
  230. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  231.  
  232. Conference 4
  233. Date       03-31-92 16:35:31
  234. From       Trevor Carlsen
  235. To         Sysop
  236. Subject    Rules of this echo
  237.  
  238.  
  239.  
  240. Would all sysops please ensure that a copy of these rules is available
  241. to all users of the echo.  It suggested that they be made a protected
  242. message to ensure that normal message area housekeeping does not not
  243. result in them being deleted.  There are some important changes this 
  244. month relating to off-topic messages and the use of aliases.  
  245.  
  246. RULES OF THE PASCAL ECHO
  247.  
  248. The Pascal echo is an internationally distributed FidoNet echo devoted
  249. to the discussion and promotion of the Pascal programming language in
  250. all its variations.  Countries currently participating include the USA,
  251. Australia, Canada, The Netherlands, Denmark, Sweden, Norway, Finland,
  252. Belgium, Germany, Austria, Poland, USSR, Israel and occasionally
  253. Singapore.
  254.  
  255. MODERATOR.
  256.  
  257. The currently appointed Moderator is Trevor Carlsen. He can be reached
  258. by Netmail at 3:690/644 or by normal postage by writing to -
  259.  
  260.   Trevor J Carlsen
  261.   Post Office Box 568
  262.   Port Hedland 
  263.   Western Australia 6721  
  264.   Phone (voice) +61 91 73-2026  (Local time is GMT+8)
  265.         (data)  +61 91 73-2569
  266.  
  267. RULES.
  268.  
  269.  1. Leave moderation to the moderator. Self appointed "echo policemen"
  270.     only waste echo space and create ill-feeling.
  271.  
  272.  2. NO FLAMING. If you feel that you have been insulted in some way by
  273.     somebody, you have three options.
  274.      (a) Complain by netmail to the person concerned.
  275.      (b) Bring the matter to the moderator's notice - again by netmail.
  276.      (c) Ignore it. (the preferred option!)
  277.  
  278.  3. Person-person messages that are not of general interest to other
  279.     users are STRICTLY not permitted. Netmail these types of messages.
  280.  
  281.  4. When replying to messages try and do so "off-line" and quote some of
  282.     the message being replied to. However don't go overboard with
  283.     quoting. Quote just enough to enable the context of the reply to be
  284.     fully understood and in particular DO NOT INCLUDE PARTS OF THE TEAR
  285.     AND ORIGIN LINES.
  286.  
  287.  5. When replying to questions with code examples, test them where
  288.     possible by compiling and running them (or state that you have not
  289.     done this). If possible always quote manual references, text
  290.     references etc. If your code example contains inline code then it is
  291.     only fair that you FULLY comment such code so that users can
  292.     determine the validity or viability of that code BEFORE risking it
  293.     on their own machines/data.
  294.  
  295.  6. If replying to a question where you are disagreeing with the other
  296.     person's code or statement/s, support your viewpoint with working
  297.     code examples or valid text references. This will be more productive
  298.     than unsupported statements. If you are not prepared to do this then
  299.     don't reply in the first place!
  300.  
  301.  7. Do not ENTER or REPLY TO off-topic messages.
  302.     The subject matter is Pascal.  Discussions on religion, politics,
  303.     copyright, other programming languages and personal messages are 
  304.     OFF-TOPIC.  Any subject that is illegal or undesirable in a
  305.     responsible conference - eg discussion or tips on producing viruses or
  306.     how to illegally obtain access to information that the user is
  307.     unauthorised to obtain is off-topic and will be severely dealt with.
  308.  
  309.     Sometimes messages from other conferences become linked into another
  310.     conference due to faulty software. Replying to, or commenting on, such
  311.     messages is not permitted.
  312.  
  313.     The main point is to use common sense.  Some light hearted banter can
  314.     relieve the formality and brighten up ones day but do not carry this to
  315.     the length where it becomes an extended thread.  The object of the echo
  316.     is to help, get help and enjoy communicating with like-minded people.
  317.  
  318.  8. No "thank-you" or "no content" or "rubbish" messages. Sysops spend a
  319.     great deal of time and money to enable the distribution of echoes
  320.     such as this. Please respect this and avoid messages such as "Thank
  321.     you. Just what I needed" or "I agree" etc. By observing this
  322.     etiquette you will be helping to ensure greater participation in the
  323.     future.
  324.  
  325.  9. All messages are to be in the English language and must be in PLAIN
  326.     TEXT.  No encryption of any kind is permissable as this is in direct
  327.     contravention of FidoNet policy.  This also means that binary file
  328.     transfer by conversion to asciiz is not allowed.
  329.  
  330. 10. Limited, low key, on-topic advertising is permitted. The key words
  331.     here are ON-TOPIC and LOW KEY. Please restrict any notices to a
  332.     "one-time" issue and keep it brief and informative with NO SALES
  333.     HYPE. Any notice must be of interest to the echo participants in
  334.     general. Therefore this excludes such items as job vacancies, BBS
  335.     ads, for sale notices and similar as this is an International echo.
  336.  
  337. 11. When seeking assistance -
  338.     a)  If Turbo Pascal is your language, place the cursor on the key
  339.         word and call the on-line help (Ctrl-F1 in the IDE) to see if
  340.         the answer may be there.
  341.     b)  Double check the manual to see if the answer is there.
  342.     c)  When writing the message include enough code to allow would-be
  343.         helpers to have a chance to determine what the problem might be.
  344.         If possible condense the problem into a tiny working example and
  345.         post that.
  346.     d)  This is a high volume echo so use a subject line in the message
  347.         that is likely to gain attention from the experts who are often
  348.         too busy to read every message.  "Help wanted" or similar is a
  349.         good way to be ignored. Something like "Exec procedure not
  350.         working" is better.
  351.     e)  Remember that a reply of "RTFM" is not considered or meant as an
  352.         insult. In fact it is considered a polite (in spite of the
  353.         connotations) way of reminding someone that the answer they seek
  354.         is in the manual.
  355.     f)  Remember also that your reply may come from anyone, of possibly
  356.         unknown skill level.  Don't be too upset if misled as it is
  357.         probably unintentional and will almost certainly be corrected by
  358.         another reader.
  359.  
  360. 12. When offering advice or help -
  361.     a)  Do so in a helpful, polite manner.  Don't be condescending - not
  362.         everybody may have your experience or skills.
  363.     b)  Refer to the page in the manual where the answer is if your
  364.         answer is "RTFM"!
  365.  
  366. 13. Messages should comply with the FidoNet message requirements. Origin
  367.     lines should not exceed 79 characters, tear lines must not exceed 25
  368.     characters and messages should not contain any "hi-bit" (characters
  369.     with an ascii code over 127) characters. No encrypted text is
  370.     permitted.  Messages are to be under 150 lines in length.
  371.  
  372. Any suggestions re alterations to this message are welcome. Please make
  373. such suggestions by netmail.
  374.  
  375. --- TC-ED   v2.01  
  376.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  377.  * Tossed by SFToss v1.00b on 92/03/31  20:20:26
  378.  
  379. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  380.  
  381. Conference 4
  382. Date       03-31-92 16:40:45
  383. From       Trevor Carlsen
  384. To         All
  385. Subject    Contest
  386.  
  387.  
  388.  
  389.      $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $
  390.      $                                                                 $
  391.      $   In order to promote both this echo and the use of Pascal as   $
  392.      $   an all purpose language, I have decided to offer a prize of   $
  393.      $   two hundred and fifty dollars (Aust.) to the contributor      $
  394.      $   who sends me the most useful utility/hint/program/unit by the $
  395.      $   30th June 1992.     There will be a second prize of one       $
  396.      $   hundred dollars, and a third prize of fifty dollars.          $
  397.      $                                                                 $
  398.      $   Conditions:                                                   $
  399.      $                                                                 $
  400.      $   All entries are to be submitted either on a 5.25" or 3.5"     $
  401.      $   disk or by crashing the file direct to my node.  All source   $
  402.      $   code must be included and must be expressly released into     $
  403.      $   the PUBLIC DOMAIN. No copyright material will be accepted.    $
  404.      $   Entries are to be in the Pascal programming language, but     $
  405.      $   may contain in-line machine code or external routines. If     $
  406.      $   this is the case, full source code, as comments and a ready   $
  407.      $   include .OBJ file with assembler source MUST be included.     $
  408.      $   Generally pure Pascal code will receive higher marks!         $
  409.      $   All material is to be for the MS-DOS (or compatible)          $
  410.      $   programming environment.                                      $
  411.      $                                                                 $
  412.      $   All material must have full details of the author's name,     $
  413.      $   address and, if possible, a telephone number for voice        $
  414.      $   contact.                                                      $
  415.      $                                                                 $
  416.      $   The sole judge and arbitor will be myself and the best of the $
  417.      $   entries will be posted in the echo on a progressive basis.    $
  418.      $   The ten finalists will be re-posted and echo participants     $
  419.      $   invited to vote to determine the eventual winner.             $
  420.      $                                                                 $
  421.      $   Entries should be submitted to                                $
  422.      $        Trevor J Carlsen                                         $
  423.      $        PO Box 568                                               $
  424.      $        Port Hedland                                             $
  425.      $        Western Australia 6721  Phone (voice) +61 91 73 2026     $
  426.      $                                                                 $
  427.      $   no later than 30th June 1992. The final selection will take   $
  428.      $   place during July 1992.  If a minimum of twenty valid entries $
  429.      $   are not received by the due date the contest will be nul and  $
  430.      $   void.                                                         $
  431.      $                                                                 $
  432.      $   The media (disks etc) that entries are submitted on will      $
  433.      $   become my property unless $2.50 (Aust) (approx US$2.00) is    $
  434.      $   included for return postage.                                  $
  435.      $                                                                 $
  436.      $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $
  437.  
  438.  
  439.  
  440. --- TC-ED   v2.01  
  441.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  442.  * Tossed by SFToss v1.00b on 92/03/31  20:20:27
  443.  
  444. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  445.  
  446. Conference 4
  447. Date       03-31-92 08:17:45
  448. From       Dj Murdoch
  449. To         Terry Hughes
  450. Subject    TurboPower and TPW
  451.  
  452.   TH> Finally, we certainly could do TV add-ons to attract new
  453.  TH> programmers that want such tools. However, our resources are
  454.  TH> finite and we've been concentrating our efforts on new tools for
  455.  TH> Turbo Pascal for Windows.
  456.  
  457. Could you let us know the current status of those?  I haven't been keeping
  458. track of your announcements.  All I remember is that you were intending to
  459. port B-tree Filer first.
  460.  
  461. --- Msg V3.2
  462.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  463.  * Tossed by SFToss v1.00b on 92/04/01  09:25:25
  464.  
  465. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  466.  
  467. Conference 4
  468. Date       03-31-92 08:20:31
  469. From       Dj Murdoch
  470. To         Jud Mccranie
  471. Subject    Re: Power of assemb vs Pascal
  472.  
  473.   HH> Recursion in asm works fine, you just have to make sure you
  474.  HH> know what's on the stack...
  475.  
  476.  JM> But in Pascal you don't have to worry about that.   Programmers
  477.  JM> shouldn't have to fret over details that the compiler can handle.
  478.  
  479. You have exactly the same worries in Pascal as in Assembler, just under differen
  480.  names.  In Assembler, you need to be sure your variables are in a local stack
  481. frame, in Pascal you have to make sure they're local variables.  If you try
  482. to do recursion with all your variables global in Pascal you'll mess up just
  483. as badly as you would in Assembler.
  484.  
  485. There are many good reasons to prefer Pascal over Assembler, and many good
  486. reasons to prefer Assembler over Pascal.  Each has its own domain.  Since
  487. you've never learned Assembler, I'd say the only thing you're qualified to
  488. say about it is that the learning curve looks steep.
  489.  
  490. --- Msg V3.2
  491.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  492.  * Tossed by SFToss v1.00b on 92/04/01  09:25:25
  493.  
  494. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  495.  
  496. Conference 4
  497. Date       03-31-92 08:24:54
  498. From       Dj Murdoch
  499. To         Jud Mccranie
  500. Subject    Re: constants in Pascal
  501.  
  502.   JM> This brings up a point about how Pascal handles constants.  Should
  503.  JM> they be changable or not in the body of the program?  There are some
  504.  JM> arguements either way.  Making them not changable is safer, making
  505.  JM> them changable is more convienent.  Would it be nice to have both
  506.  JM> kinds?  Maybe.  In TP (at least) you can change the contstant in
  507.  JM> the body if and only if you give it a type.  This is a way to
  508.  JM> distinguish between the two kinds.  Unfortunately, in some cases you
  509.  JM> must give a type to tell it what you want.
  510.  
  511. This is a real kludge, but one that's been in TP so long that I don't think
  512. there's much hope of a fix for it.  Constants should be constant, absolutely
  513. unchangeable by legal code.  The current "typed constants" should have been
  514. implemented as initialized variables, and it would be less embarrassing to
  515. explain your code to people who don't know TP.
  516.  
  517. --- Msg V3.2
  518.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  519.  * Tossed by SFToss v1.00b on 92/04/01  09:25:25
  520.  
  521. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  522.  
  523. Conference 4
  524. Date       03-31-92 08:31:02
  525. From       Dj Murdoch
  526. To         David Solly
  527. Subject    Re: Chr/Char interchange?
  528.  
  529.   DS> I was wondering if this is something particular 
  530.  DS> to Turbo Pascal or a bug in the compiler.
  531.  
  532.  DS>     Encipher :=  CHAR(c + Offset); {offset := 64}
  533.  
  534.  DS> I believe the second last line should have read:
  535.  
  536.  DS>   Encipher := CHR(c + Offset);
  537.  
  538. That's a TP peculiarity.  TP allows typecasting.  It happens that typecasting
  539. is approximately what CHR does.
  540.  
  541.  
  542. --- Msg V3.2
  543.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  544.  * Tossed by SFToss v1.00b on 92/04/01  09:25:25
  545.  
  546. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  547.  
  548. Conference 4
  549. Date       03-31-92 22:36:52
  550. From       Dj Murdoch
  551. To         All
  552. Subject    STREAM11.ZIP:  Stream extensions unit
  553.  
  554.  I just hatched my STREAMS unit to the PDN Pascal file echo - twice!  The first
  555. time, I forgot to include the compression code, so it wouldn't compile.  If
  556. you have STREAM10.ZIP, please erase it; STREAM11.ZIP is what you should be
  557. using.
  558.  
  559. There aren't any changes since I previewed it on Friday; here's the object
  560. hierarchy that it provides: 
  561.  
  562.    TStream                  (from Objects)
  563.      TFilter                Base type for filters
  564.        TEncryptFilter       Encrypts as it writes; decrypts as it reads
  565.        TLZWFilter           Compresses as it writes; expands as it reads
  566.        TTextFilter          Provides text file interface to stream
  567.        TLogFilter           Provides logging of text file activity
  568.      TRAMStream             Stream in memory
  569.      TDOSStream             (from Objects)
  570.        TBufStream           (from Objects)
  571.          TNamedBufStream    Buffered file stream that knows its name
  572.            TTempBufStream   Buffered file stream that erases itself when done
  573.  
  574.  
  575. It also has a few procedures and functions:
  576.  
  577.    TempStream      allocates a temporary stream
  578.    OvrInitStream   like OvrInitEMS, but buffers overlays on a stream
  579.                    May be called several times to buffer different
  580.                    segments on different streams.
  581.    OvrDetachStream detaches stream from overlay system
  582.    OvrDisposeStreams detaches all streams from overlay system and disposes of
  583.  
  584.                    them
  585.    OvrSizeNeeded   Calculates the size needed to load the rest of the segments
  586.                    to a stream
  587.    OvrLoadAll      immediately copies as many overlay segments to the stream
  588.                    as will fit
  589.  
  590. It's free, for noncommercial use.  Look for it soon on a PDN Pascal node near you!
  591.  
  592.  
  593. --- Msg V3.2
  594.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  595.  * Tossed by SFToss v1.00b on 92/04/01  09:25:25
  596.  
  597. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  598.  
  599. Conference 4
  600. Date       04-01-92 14:15:12
  601. From       Trevor Carlsen
  602. To         All
  603. Subject    My absence again...
  604.  
  605.  
  606.  
  607. I will be absent from the echo again until at least Mon 6th.  Enjoy!
  608.  
  609. (I try to avoid the "big smoke" as much as possible but sometimes it is unavoida
  610. le :-)  Hopefully I'll finish my business by Sat evening, relax at the footy
  611. on Sun and catch the early AM "red eye special" flight back Mon.  [That's
  612. PLAN "A"] )
  613.  
  614. Moderator.
  615.  
  616. --- TC-ED   v2.01  
  617.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  618.  * Tossed by SFToss v1.00b on 92/04/01  19:41:33
  619.  
  620. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  621.  
  622. Conference 4
  623. Date       04-01-92 08:04:59
  624. From       Dj Murdoch
  625. To         Greg Williams
  626. Subject    Re: Yet another use for streams
  627.  
  628.   DM> There's no restriction on the size of a stream that I 
  629.  DM> can think of, but if you went beyond longint size, all 
  630.  DM> the Seek, GetSize, GetPos etc. methods would fail.  
  631.  
  632.  DM> Why are you finding the Seek restrictions a pain?  Do 
  633.  DM> you really have streams bigger than a longint?
  634.  
  635.  GW> Yes, the streams I'm concerned with are 
  636.  GW> Binary-Large-Objects.  Doing some experimentation on 
  637.  GW> object databases.  The database-search queries return a 
  638.  GW> pointer/path to the object in question, which is treated as a byte-stream.
  639.  GW> Since there is no requirement to know (or care) about the 
  640.  GW> type or size of the object in question (whether it be a 
  641.  GW> 300K *.GIF, or a 5Mb database itself), it is important not 
  642.  GW> to "shred" the data into many smaller files just to store it.
  643.  
  644. But a longint can handle up to 2 Gigabytes.  Doesn't that handle everything
  645. for you?
  646.  
  647.  GW> When you have a computer with 64 Gb of memory, 
  648.  GW> you wont want to load 40 different files just to get your 
  649.  GW> app's data into memory.
  650.  
  651. It shouldn't be too hard to redefine everything in terms of 64 bit integers
  652. instead of 32 bit integers, and that'll push the limit high enough for quite
  653. a while.
  654.  
  655. --- Msg V3.2
  656.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  657.  * Tossed by SFToss v1.00b on 92/04/02  09:29:56
  658.  
  659. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  660.  
  661. Conference 4
  662. Date       04-01-92 08:13:15
  663. From       Dj Murdoch
  664. To         Jan Hoolwerf
  665. Subject    Re: Is this possible in TurboPascal?
  666.  
  667.   JH> TYPE
  668.  JH>   OptionsBits     = (
  669.  JH>         Bit0,
  670.  JH>         _b1, _b2, _b3, _b4, _b5, _b6,
  671.  JH>         Bit7);
  672.  JH>   OptionsType     = SET OF OptionsBits;
  673.  
  674.  JH> Now it's easy to use (test, set, reset) Bit0 and Bit7. So far so good.
  675.  
  676.  
  677.  JH> Q: is it possible in TP to define the bits 1-6 in one 
  678.  JH> 'statement', without spelling them out bit by bit. :-)
  679.  
  680. No, it's not.  That's what the "packed" keyword is supposed to do:  you could
  681. have a declaration something like
  682.  
  683.  optionstype = packed record
  684.    bit0 : 0..1;
  685.    mid6 : 0..63;
  686.    bit7 : 0..1;
  687.  end;
  688.  
  689. and it would all be stored in one byte.  Unfortunately, TP ignores packed,
  690. and there really isn't any simple way to get at those middle 6 bits.
  691.  
  692. One alternative would be to declare the byte as an object, but that seems
  693. a bit of overkill:
  694.  
  695.  type  
  696.    optionstype = object
  697.      data : byte;
  698.      function getbit0 : byte;
  699.      function getmid6 : byte;
  700.      function getbit7 : byte;
  701.      
  702.      procedure setbit0(value : byte);
  703.      procedure setmid6(value : byte);
  704.      procedure setbit7(value : byte);
  705.   end;
  706.  
  707. etc.
  708.   
  709.  
  710.  
  711. --- Msg V3.2
  712.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  713.  * Tossed by SFToss v1.00b on 92/04/02  09:29:57
  714.  
  715. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  716.  
  717. Conference 4
  718. Date       04-01-92 08:20:16
  719. From       Dj Murdoch
  720. To         Peter Kolding
  721. Subject    Re: Updating TPRO
  722.  
  723.   PK> Just unpacked TP6.00, whih has been sitting on my shelf for...what 1 or 2
  724.  
  725.  PK> years?...and find that there has been a change in the 
  726.  PK> FreePtr, i.e. it is no more. Has someone produced code or 
  727.  PK> a program that will 'fix-up' TPRO 5.09 units so that they 
  728.  PK> can be compiled by TP6? Turbo Asynch compiles fine, but I'm
  729.  PK> used to dealing with TPRO and compile Asynch in the TPRO mode.
  730.  
  731.  PK> All help and suggestions gratefully accepted.
  732.  
  733. You could fix it up to compile, but there are several subtle bugs that that
  734. would introduce - the deletion of FreePtr isn't the only change from TP 5.5
  735. to 6.0.  I'd recommend getting the TPRO update from TurboPower.
  736.  
  737. --- Msg V3.2
  738.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  739.  * Tossed by SFToss v1.00b on 92/04/02  09:29:57
  740.  
  741. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  742.  
  743. Conference 4
  744. Date       04-01-92 22:52:00
  745. From       Norbert Igl
  746. To         Benjamin Lin
  747. Subject    ABSOLUTE CSEG:$100??
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  > Recently I came across some source code that I believe was written
  754.  > for early version of Turbo Pascal contains a line like this
  755.  
  756.  > VAR
  757.  >   SIG : BYTE ABSOLUTE CSEG:$0100;
  758.  >                           ^
  759.  >                           ---- The cursor stoped here
  760.  
  761.   Hi Ben,
  762.  
  763.    CSEG is a function !
  764.  
  765.    you say : "it's from an early version" ....
  766.  
  767.    ...maybe from 3.0, where CSEG:100 means the start of a .COM-file?
  768.  
  769.    you'd better forget about this in TP-Versions >= 4.0 !
  770.  
  771. Bye from Germany, Norbert
  772.  
  773. ---
  774.  * Origin: STOP READING! You're leaving the MSG-sector (2:241/5300.3)
  775.  * Tossed by SFToss v1.00b on 92/04/03  04:32:45
  776.  
  777. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  778.  
  779. Conference 4
  780. Date       04-01-92 09:43:00
  781. From       Terry Hughes
  782. To         Randy Blackmond
  783. Subject    B-Tree m/u
  784.  
  785.  
  786. RB>Yes, everything you listed has been checked and verified.
  787. RB>NETDEMO runs fine, SHARE is loaded only on the server, MsNet
  788. RB>is the net type being used and I am passing a workstation
  789. RB>number as a command line parameter. I was going to recompile
  790. RB>NETDEMO and see if I got the same error my program gave, but
  791. RB>was unable to do so since NETDEMO uses TPRO and I have OPRO...
  792. RB>I'll follow your last suggestion and make a bare bones
  793. RB>program to try and isolate things a little bit. Will get
  794. RB>back to you with my results. Thanks.
  795.  
  796. You can also use SIMPDEMO, which doesn't rely on any other
  797. units, as a test bed.
  798.  
  799. -Terry
  800.  
  801.  * OLX 2.2 * TurboPower Software (voice 719-260-6641)
  802.  
  803. --- Maximus 2.01wb
  804.  * Origin: The Programmers Playhouse (1:128/60)
  805.  * Tossed by SFToss v1.00b on 92/04/04  10:05:58
  806.  
  807. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  808.  
  809. Conference 4
  810. Date       04-03-92 18:09:02
  811. From       Terry Hughes
  812. To         Richard Nelson
  813. Subject    Re: Why I Like Tp 5.5 Id
  814.  
  815.  
  816. RN> > Thanks. OPRO was voted one of eight, I think, programmer
  817. RN> > productivity tools to receive Computer Languages Product
  818. RN> > Excellence awards for 1990.
  819.  
  820. RN>Of course, in fairness, one of the others receiving that
  821. RN>award was Turbo Vision....  :-)
  822.  
  823. TV didn't get the same award as OPRO. OPRO, TV and about 38
  824. other products all got Productivity Awards. OPRO and about seven
  825. others were singled out of that group and given Product
  826. Excellence Awards.
  827.  
  828. However, the Productivity Award is also a fine achievement and
  829. something you should be proud of (I say that since APRO just won
  830. a Productivity Award this year <g>).
  831.  
  832. RN>I think we reached a detente on this a year or so ago.
  833.  
  834. I was asked to comment so I did.
  835.  
  836. -Terry
  837.  
  838.  * OLX 2.2 * TurboPower Software (voice 719-260-6641)
  839.  
  840. --- Maximus 2.01wb
  841.  * Origin: The Programmers Playhouse (1:128/60)
  842.  * Tossed by SFToss v1.00b on 92/04/04  10:05:58
  843.  
  844. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  845.  
  846. Conference 4
  847. Date       04-01-92 10:24:04
  848. From       Terry Hughes
  849. To         Peter Kolding
  850. Subject    Updating TPRO
  851.  
  852.  
  853. PK>Just unpacked TP6.00, whih has been sitting on my shelf for...what 1 or 2
  854.  
  855. PK>years?...and find that there has been a change in the
  856. PK>FreePtr, i.e. it is no more. Has someone produced code or
  857. PK>a program that will 'fix-up' TPRO 5.09 units so that they
  858. PK>can be compiled by TP6? Turbo Asynch compiles fine, but I'm
  859. PK>used to dealing with TPRO and compile Asynch in the TPRO mode.
  860.  
  861. Unfortunately, the changes are far too involved to describe in a
  862. message or even an update file. Best bet is to spend $20 and get
  863. the latest version from us. You can call at the number below or
  864. 800-333-4160 from the US and Canada.
  865.  
  866. -Terry
  867.  
  868.  * OLX 2.2 * TurboPower Software (voice 719-260-6641)
  869.  
  870. --- Maximus 2.01wb
  871.  * Origin: The Programmers Playhouse (1:128/60)
  872.  * Tossed by SFToss v1.00b on 92/04/04  10:05:59
  873.  
  874. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  875.  
  876. Conference 4
  877. Date       04-03-92 18:41:06
  878. From       Terry Hughes
  879. To         Dj Murdoch
  880. Subject    TurboPower and TPW
  881.  
  882.  
  883. DM> TH> Finally, we certainly could do TV add-ons to attract new
  884. DM> TH> programmers that want such tools. However, our resources are
  885. DM> TH> finite and we've been concentrating our efforts on new tools for
  886. DM> TH> Turbo Pascal for Windows.
  887.  
  888. DM>Could you let us know the current status of those?  I
  889. DM>haven't been keeping track of your announcements.  All I
  890. DM>remember is that you were intending to port B-tree Filer
  891. DM>first.
  892.  
  893. B-Tree Filer has been running under TPW for a good while now.
  894. In the most recent version, 5.23, we've added TPW support to all
  895. the supplemental units (NETWARE, NETBIOS, etc.)
  896.  
  897. As far as new products go, we just posted some rather detailed
  898. announcements on our CIS forum that I've hesitated to post here
  899. (due to their length). I'll give a real brief overview:
  900.  
  901. The first product is called WinSys. It's a collection of system
  902. level and data handling routines like string handling, container
  903. classes, large arrays, date routines, sorting and so on. They
  904. can be compiled as units or DLLs. We'll be providing C/C++
  905. interfaces as well. And, since this product doesn't depend on
  906. OWL it can be used with Microsoft C++ as well as Borland C++ and
  907. TPW.
  908.  
  909. The second product is called Data Entry Workshop. It provides
  910. custom data entry controls and validated data entry screens akin
  911. to OPRO's data entry system. You design the screens in Resource
  912. Workshop and then run our MAKESRC utilty to generate source
  913. code. We also provide a utility to convert OPRO OPL libraries to
  914. resource scripts ready for importing into RW. This product
  915. relies heavily on OWL so it will work only with TPW and BC++
  916. (not Microsoft C++).
  917.  
  918. Both will ship this summer.
  919.  
  920. -Terry
  921.  
  922.  * OLX 2.2 * TurboPower Software (voice 719-260-6641)
  923.  
  924. --- Maximus 2.01wb
  925.  * Origin: The Programmers Playhouse (1:128/60)
  926.  * Tossed by SFToss v1.00b on 92/04/04  10:05:59
  927.  
  928. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  929.  
  930. Conference 4
  931. Date       04-03-92 18:24:08
  932. From       Terry Hughes
  933. To         Pat Anderson
  934. Subject    Why I Like Tp 5.5 Ide (c
  935.  
  936.  
  937. PA> TH> We avoided an event driven architecture for a variety of
  938. PA> TH> reasons: steep learning curve, unnecessary complexity and market
  939. PA> TH> resistance. Our sales figures, customer feedback and industry
  940.  
  941. PA>Market resistance - I thought so...will you try to tell
  942. PA>Jeff Dunteman this??  He keeps saying "Event driven is the
  943. PA>way programming is going to be."
  944.  
  945. I think Jeff is a superb writer and teacher and I thoroughly
  946. enjoy his PC Techniques magazine and his column in Dr. Dobbs.
  947. However, he's not down in the trenches programming for a living
  948. so his perspective and priorities aren't always the same as
  949. ours.
  950.  
  951. PA>Keep up the good work!
  952.  
  953. Thanks. We'll certainly keep trying.
  954.  
  955. -Terry
  956.  
  957.  * OLX 2.2 * TurboPower Software (voice 719-260-6641)
  958.  
  959. --- Maximus 2.01wb
  960.  * Origin: The Programmers Playhouse (1:128/60)
  961.  * Tossed by SFToss v1.00b on 92/04/04  10:06:00
  962.  
  963. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  964.  
  965. Conference 4
  966. Date       04-03-92 19:40:00
  967. From       Werner Berghofer
  968. To         Robert Soubie
  969. Subject    Traffic report
  970.  
  971.  
  972.  
  973.  
  974.  
  975.        Robert,
  976.  
  977.        [average message posting frequency per day]
  978.  
  979.  > are those referenced to UT time, by correction on
  980.  > the fidonet zone and net?
  981.  
  982.        no, this statistic table simply is composed from the time stamps in
  983. the message header.  However, if something like a "^aTZ" kludge line could
  984. be "standardized" (well, *now* I'm kidding) in Fidonet this would help a lot,
  985. for example for correct chronological sorting of a messagebase.
  986.  
  987.        By the way: are you aware of any sources or literature describing the
  988. defined time zone strings and their respective offsets to UTC?
  989.  
  990.        Werner
  991.  
  992. ---
  993.  * Origin: God is real... unless declared integer. (2:310/90.100)
  994.  * Tossed by SFToss v1.00b on 92/04/04  10:06:43
  995.  
  996. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  997.  
  998. Conference 4
  999. Date       04-03-92 19:50:01
  1000. From       Werner Berghofer
  1001. To         Benjamin Lin
  1002. Subject    Traffic report
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.        Hello, Benjamin.
  1009.  
  1010.  > Is there source of this file available? If so, can you please
  1011.  > post it [...]
  1012.  
  1013.        I assume some 50+ KB of source code, including references to a lot
  1014. of units written by myself, would be too much for this echo.  It's primarily
  1015. a mixture of fast, buffered file access methods, some date calculating stuff
  1016. and the usual way of look-up and inserting into linked lists.
  1017.  
  1018.        The really tricky stuff are the parts dealing with the various forms
  1019. of f*cking up message topics (Re:, (R) and so on) and the braindead programs
  1020. widely in use in Fidonet randomly truncating message subjects.  Of course
  1021. I have the ambition to create programs smart enough to find out that messages
  1022. regarding "Which is better: CP/M 2.2 or OS/2.0?" and "Re: (R): Which is better:
  1023. CP/M 2.2 or O" originally belong to the same message thread.
  1024.  
  1025.        Werner
  1026.  
  1027. ---
  1028.  * Origin: God is real... unless declared integer. (2:310/90.100)
  1029.  * Tossed by SFToss v1.00b on 92/04/04  10:06:43
  1030.  
  1031. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1032.  
  1033. Conference 4
  1034. Date       04-03-92 18:19:34
  1035. From       Dj Murdoch
  1036. To         John Richardson
  1037. Subject    Re: Data Compression Techniques ********
  1038.  
  1039.   JR> I'm interested in looking at this TPLZW code.  I am 
  1040.  JR> looking for some data compression routines to work with 
  1041.  JR> graphics files (and this sounds appealing).  Anybody know 
  1042.  JR> where I can obtain this?
  1043.  
  1044. I finally released my stream version of it.  If you can't find TPLZW, look
  1045. for STREAM11.ZIP, on any PDN Pascal BBS (in particular my bossnode, 221/177).
  1046.  
  1047. --- Msg V3.2
  1048.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1049.  * Tossed by SFToss v1.00b on 92/04/04  10:06:50
  1050.  
  1051. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1052.  
  1053. Conference 4
  1054. Date       04-03-92 18:24:04
  1055. From       Dj Murdoch
  1056. To         Jud Mccranie
  1057. Subject    Re: Power of assemb vs Pascal
  1058.  
  1059.   JM> But you don't have to specifically manage the stack with recursion in
  1060.  JM> Pascal.  It takes care of those bookkeeping details for you.  
  1061.  
  1062. Nor do you with any good assembler.  A86, TASM, probably even MASM by now,
  1063. all manage the stack for you.  You just declare that a variable should be
  1064. local, and it is. 
  1065.  
  1066. --- Msg V3.2
  1067.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1068.  * Tossed by SFToss v1.00b on 92/04/04  10:06:50
  1069.  
  1070. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1071.  
  1072. Conference 4
  1073. Date       04-03-92 18:27:58
  1074. From       Dj Murdoch
  1075. To         James Digiacomo
  1076. Subject    Re: Dynamic Arrays
  1077.  
  1078.   JD> I'm trying to use Dynamic arrays in TPv5.5 in the 
  1079.  JD> following program. Its works
  1080.  JD> correctly within the IDE but when I compile it to and .EXE 
  1081.  JD> file and then run
  1082.  JD> it at the DOS prompt, it somehow appends garbage with the 
  1083.  JD> data store within
  1084.  JD> the array.
  1085.  
  1086. It looks like your dynamic array code is fine, but you forgot to initialize
  1087. a variable.  
  1088.  
  1089.  JD> begin
  1090.  JD>     getmem(lim,combo * sizeof(item));
  1091.  JD>     writeln('Im working');
  1092.  
  1093.  JD>          if (take = 1) then
  1094.  JD>               begin
  1095.  JD>                   for count := 1 to combo do
  1096.  JD>                       begin
  1097.  JD>                          x := trunc(random(num_elmts))+1;
  1098.  
  1099. At this point, num_elmts is undefined.
  1100.  
  1101.  
  1102. --- Msg V3.2
  1103.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1104.  * Tossed by SFToss v1.00b on 92/04/04  10:06:51
  1105.  
  1106. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1107.  
  1108. Conference 4
  1109. Date       04-03-92 18:32:41
  1110. From       Dj Murdoch
  1111. To         Jud Mccranie
  1112. Subject    Re: More features needed in TP
  1113.  
  1114.   JM> More things needed in TP:
  1115.  
  1116.  JM> 1. Long words (32-bit unsigned)
  1117.  JM> 2. Choice of memory models (allowing far data, etc)
  1118.  
  1119. I can see that 1 would be nice, but I can't see much need for 2.  You've already
  1120. got quite a choice of memory model in TP:
  1121.  
  1122.   Far data:  the heap 
  1123.   Near data: the stack and data segment
  1124.   Far procedures:  the ones in other units
  1125.   Near procedures: the ones in the same unit
  1126.  
  1127. About the only thing missing from TP in the way of memory models is the near
  1128. pointer, which to be useful forces your stack and data segment to be the same.
  1129.  That would help make small programs even smaller, but isn't any use in the
  1130. big programs that would really benefit from improvements.
  1131.  
  1132. On the other hand, compilers with multiple memory models end up taking up
  1133. huge gobs of disk space, because you need a different library for every model.
  1134.  Any time I've owned one I just instructed the installation program to dump
  1135. every model but one.  
  1136.  
  1137. If Borland is listening, I hope that they *don't* put multiple memory models
  1138. into the next release. 
  1139.  
  1140.  
  1141. --- Msg V3.2
  1142.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1143.  * Tossed by SFToss v1.00b on 92/04/04  10:06:51
  1144.  
  1145. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1146.  
  1147. Conference 4
  1148. Date       04-03-92 18:42:51
  1149. From       Dj Murdoch
  1150. To         Daniel Torrey
  1151. Subject    Re: Turbovision - Off Topic?
  1152.  
  1153.   DT> Is TurboVision off-topic in here yet?  In any case, are there any
  1154.  DT> sysops in here interested in starting a TurboVision echo?
  1155.  
  1156. I've never heard any suggestion that TV should be off-topic, and I'd object
  1157. if there was one.  There's no need to split up the echo.  TV is a library
  1158. that most people using Pascal have access to (since the majority of people
  1159. using Pascal on any platform are using TP 6.0 on a PC).  
  1160.  
  1161. If you're having trouble finding the TV messages amid all the other clutter,
  1162. write a better message reader.  I'd love to see a good one written in TV.
  1163.  
  1164. --- Msg V3.2
  1165.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1166.  * Tossed by SFToss v1.00b on 92/04/04  10:06:51
  1167.  
  1168. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1169.  
  1170. Conference 4
  1171. Date       04-03-92 18:46:53
  1172. From       Dj Murdoch
  1173. To         Greg Smith
  1174. Subject    Re: Powers
  1175.  
  1176.   GS> { Code for complex numbers.  This is UNTESTED, I just wrote it for the }
  1177.  
  1178.  GS> { sake of this message }
  1179.  GS> {$N+,E+}
  1180.  
  1181.  GS> type
  1182.  GS>   Real = Extended;
  1183.  
  1184. I know it's untested, but I really wouldn't recommend this.  Extended is a
  1185. very *bad* choice of a general real type; you'd be much better off using Double.
  1186.  If you use Extended, you'll get all sorts of weird things happening, because
  1187. the hardware implementation of Extended was intended only for temporary results
  1188. - the 80x87 is inconsistent about the precision of calculations on Extendeds,
  1189. the emulator library really messes them up, etc.
  1190.  
  1191. --- Msg V3.2
  1192.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1193.  * Tossed by SFToss v1.00b on 92/04/04  10:06:52
  1194.  
  1195. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1196.  
  1197. Conference 4
  1198. Date       04-03-92 18:50:18
  1199. From       Dj Murdoch
  1200. To         Jud Mccranie
  1201. Subject    Re: Linked List Sorts
  1202.  
  1203.   JM> A regular sort on an array (without the array of pointer and doing
  1204.  JM> a lot of exchanges) will even beat the linked list sort if there
  1205.  JM> are enough elements.  The reason is that it can always be done in
  1206.  JM> O( n log n) time.  The linked list method will be quadratic, due
  1207.  JM> to the traversal of the list, although the squared term will be
  1208.  JM> small at first.
  1209.  
  1210. Unless you cheat - the way I'd sort a linked list is to create an array of
  1211. pointers to the elements in O( n ) time, sort the array in O( n log n) time,
  1212. and then update all the pointers in the linked list in O( n ) time.  Voila
  1213. - an O( n log n) sort of a linked list :-).
  1214.  
  1215. --- Msg V3.2
  1216.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1217.  * Tossed by SFToss v1.00b on 92/04/04  10:06:52
  1218.  
  1219. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1220.  
  1221. Conference 4
  1222. Date       04-03-92 18:53:33
  1223. From       Dj Murdoch
  1224. To         Jud Mccranie
  1225. Subject    Re: Turbo Pascal.....
  1226.  
  1227.   JM> Certainly there is no way to get back the HLL source.  But could
  1228.  JM> a decompiler give you something to work with, even in the variables
  1229.  JM> are x1, x2, x3, and the procs are labeled proc1, proc2, etc?
  1230.  
  1231. That's what a disassembler does.  Why bother translating the assembler to
  1232. a HLL?  Everybody knows assembler these days, and you'd probably get it wrong,
  1233. anyways.  Lots of different high level language constructs compile to the
  1234. same machine language.
  1235.  
  1236. --- Msg V3.2
  1237.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1238.  * Tossed by SFToss v1.00b on 92/04/04  10:06:52
  1239.  
  1240. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1241.  
  1242. Conference 4
  1243. Date       04-04-92 07:06:39
  1244. From       Trevor Carlsen
  1245. To         Jud Mccranie
  1246. Subject    Re: Reading from a text f
  1247.  
  1248.  
  1249.  
  1250.  TC> A great many text files are not produced using TP.
  1251.  
  1252.  JM> The method will work on ones produced by QEdit, etc...
  1253.  
  1254. Not necessarily.  QEdit allows lines of up to 512 characters.
  1255.  
  1256.  JM> ... He didn't specify what form the data was in, 
  1257.  JM> and that matters too.
  1258.  
  1259. Not if a BM search is used.
  1260.  
  1261. TeeCee
  1262.  
  1263. --- TC-ED   v2.01  
  1264.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  1265.  * Tossed by SFToss v1.00b on 92/04/04  13:49:41
  1266.  
  1267. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1268.  
  1269. Conference 4
  1270. Date       04-04-92 08:04:11
  1271. From       Trevor Carlsen
  1272. To         Joy Mukherjee
  1273. Subject    Entry To competition
  1274.  
  1275.  
  1276.  
  1277.  TC>It was for any hint, unit, program that was useful.  As I no longer
  1278.  TC>have CLMR on my base please netmail it to me.
  1279.  
  1280.  JM> Ack!  I can't netmail to Zone 3...
  1281.  
  1282. Perhaps snail mail then?
  1283.  
  1284.  JM> One question though : I used your MS2IEEE routine in my CLMR; is that
  1285.  JM> legal for an entry in the contest, or in other words, does the ENTIRE
  1286.  JM> unit/program/... have to be completely original source code, or can we
  1287.  JM> borrow somebody elses code posted in the conf.?
  1288.  
  1289. If you use code that is not yours, it is right to state your source.  If it
  1290. is public domain code (as all code I post here is), no permission is needed,
  1291. nor by law is any acknowledgement required, to a known author.  However if
  1292. the author IS known, it is considered the right and proper thing to make the
  1293. acknowledgement.
  1294.  
  1295. If the code you use that is not yours is copyright, then it must be submitted
  1296. by disk along with a WRITTEN authorization from the copyright owner that the
  1297. source code may be publicised and used in that manner.
  1298.  
  1299. TeeCee
  1300.  
  1301. --- TC-ED   v2.01  
  1302.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  1303.  * Tossed by SFToss v1.00b on 92/04/04  13:49:41
  1304.  
  1305. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1306.  
  1307. Conference 4
  1308. Date       04-04-92 09:44:44
  1309. From       Trevor Carlsen
  1310. To         Daniel Torrey
  1311. Subject    Turbovision - Off Topic?
  1312.  
  1313.  
  1314.  
  1315.  DT> Is TurboVision off-topic in here yet?  In any case, are there any
  1316.  DT> sysops in here interested in starting a TurboVision echo?
  1317.  
  1318. As TurboVision is part of the TP6 package and as it is in Turbo Pascal, it
  1319. is not off-topic.  However if you wish to start a dedicated echo for it, there
  1320. is nothing to stop you and it may be a very good idea.
  1321.  
  1322. TeeCee
  1323.  
  1324. --- TC-ED   v2.01  
  1325.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  1326.  * Tossed by SFToss v1.00b on 92/04/04  13:49:41
  1327.  
  1328. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1329.  
  1330. Conference 4
  1331. Date       04-04-92 09:48:15
  1332. From       Trevor Carlsen
  1333. To         Jud Mccranie
  1334. Subject    Text file searching
  1335.  
  1336.  
  1337.  
  1338.  JM> However, I defend my advise to the new user about using POS on
  1339.  JM> individual lines for several reasons.
  1340.  
  1341. Jud,  because I, or anyone else, point out a possible reason for NOT doing
  1342. something in a particular way, is by no means a reason to think that we are
  1343. having a cheap shot at you.  Rather it is merely pointing out that it may
  1344. not work "across the board".  This allows the recipient to decide whether
  1345. it is valid for his/her particular case.
  1346.  
  1347. As you have probably noticed, there have been many occasions when code I have
  1348. presented has received instant caveats from djm and others.  That is good
  1349. and as it should be in an echo such as this. The thing to remember is that
  1350. such criticism is not meant in a personal way, but rather as an additional
  1351. help, perhaps to both the poster and the recipient.
  1352.  
  1353.  JM> 1. The person specifically asked about searching a text file.  Most
  1354.  JM> text files are in a format that will work with my method.  He did
  1355.  JM> not specify the format, so it is reasonable to assume a std text file.
  1356.  
  1357. Fine.  The critical word is "most".
  1358.  
  1359.  JM> 2. He specifically asked how to find the LINE that contains the key.
  1360.  JM> This implies a standard text file format.  The method I gave will do
  1361.  JM> that, whereas your B-M program gives a byte number.
  1362.  
  1363. A line can be from 0..n characters.  Otherwise I agree with your comments.  
  1364.  
  1365.  
  1366.  JM> 4. You (correctly) said that my method wouldn't work if the key was
  1367.  JM> divided between lines.  However, assuming a standard text file your
  1368.  JM> B-M program in PNL #10 won't work in that case either because of the
  1369.  JM> imbedded CR/LF.
  1370.  
  1371. Correct, and I did point that out in another message.
  1372.  
  1373.  JM> 5. On normal-sized text files, your B-M program is only a small
  1374.  JM> fraction of a second faster than the brute-force method.
  1375.  
  1376. Correct again... The programmer should always consider the best option for
  1377. the particular case at hand.  However the 255 character limitation with TP's
  1378. Readln procedure is IMHO important enough to always be listed as a caveat.
  1379.  
  1380. TeeCee
  1381.  
  1382. --- TC-ED   v2.01  
  1383.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  1384.  * Tossed by SFToss v1.00b on 92/04/04  13:49:41
  1385.  
  1386. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1387.  
  1388. Conference 4
  1389. Date       04-04-92 10:17:05
  1390. From       Trevor Carlsen
  1391. To         Philippe Moroux
  1392. Subject    help w/search
  1393.  
  1394.  
  1395.  
  1396.  FD> Have you tried executing your piece of code? It doesn't work.
  1397.  
  1398.  TC> That code was a *working* copy of a test program.  If you
  1399.  TC> cannot make it work then I would suggest that you are doing
  1400.  TC> something wrong or do not know how to use it or the message
  1401.  TC> you received was incomplete in some way. I have tested it
  1402.  TC> again in response to your statement and find it still works
  1403.  TC> perfectly OK.  In what way does it "not work"?
  1404.  
  1405. {$REDFACE+ ++}
  1406.  
  1407. This is a classic illustration of incomplete testing on my part and I apologise.
  1408.  The code *appears* to work when the search string is in the later parts of
  1409. a large file.  Even then the result is not correct.  If the search string
  1410. is in the first 65520 bytes the result returned is indeed zero and obviously
  1411. I did not test that condition. :-(
  1412.  
  1413. The actual Boyer-Moore function is correct.  The fix is in the main program:
  1414.  
  1415.  PM>     repeat
  1416.  PM>       BlockRead(f,buffer^,sizeof(buffer^),result);
  1417.  PM>       position := BMSearch(buffer^,KeyStr,result);
  1418.  PM>       finished := (result < sizeof(buffer^)) or (position <> $ffff);
  1419.  PM>       if position = $ffff then
  1420.  PM>         inc(offset,result);
  1421.                                ^ Delete the semi colon and add the following-
  1422.            else
  1423.              inc(offset,position);
  1424.  PM>       Strfound := position <> $ffff;
  1425.  PM>     until finished;
  1426.  PM>     close(f);
  1427.  PM>     if Strfound then
  1428.  PM>       writeln('Found at offset ',offset)
  1429.  PM>     else
  1430.  PM>       writeln('Not found');
  1431.  PM>   end.
  1432.  
  1433. Once again, to you and especially Frank Derks my apologies.
  1434.  
  1435. TeeCee
  1436.  
  1437. --- TC-ED   v2.01  
  1438.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  1439.  * Tossed by SFToss v1.00b on 92/04/04  13:49:42
  1440.  
  1441. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1442.  
  1443. Conference 4
  1444. Date       04-04-92 10:59:21
  1445. From       Trevor Carlsen
  1446. To         Benjamin Lin
  1447. Subject    OPro in Oz
  1448.  
  1449.  
  1450.  
  1451.  BL> Hi, does OPRO has a version number and what is the latest? Where is it 
  1452.  
  1453.  BL> available in Australia?
  1454.  
  1455. The latest OPro I have is 1.12 and it is available in Oz thru Microway.
  1456.  
  1457. However the price (last time I checked) is around 300-350 Oz dollars and support
  1458. is close to zilch.  It is a rip-off.  Do what I do and deal with a US mail-order
  1459. place.  You should be able to land it for around AU$205.  Well worth the investm
  1460. nt.
  1461.  
  1462. TeeCee
  1463.  
  1464. --- TC-ED   v2.01  
  1465.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  1466.  * Tossed by SFToss v1.00b on 92/04/04  13:49:42
  1467.  
  1468. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1469.  
  1470. Conference 4
  1471. Date       04-04-92 11:22:37
  1472. From       Trevor Carlsen
  1473. To         James Digiacomo
  1474. Subject    Dynamic Arrays
  1475.  
  1476.  
  1477.  
  1478.  JD> I'm trying to use Dynamic arrays in TPv5.5 in the following
  1479.  JD> program. Its works correctly within the IDE but when I
  1480.  JD> compile it to and .EXE file and then run it at the DOS
  1481.  JD> prompt, it somehow appends garbage with the data store
  1482.  JD> within the array.
  1483.  
  1484. You have not initialised the array lim^ before using it in concatenation.  
  1485.  
  1486.  
  1487. Dynamic arrays require extreme care when being used in this way.  I believe
  1488. that they are valid only when you know at runtime how many elements are needed
  1489. and can make the necessary memory allocation in one hit.  Any other situation
  1490. would normally indicate to me that an array of pointers or a linked list is
  1491. a better structure to use.
  1492.  
  1493. TeeCee
  1494.  
  1495. --- TC-ED   v2.01  
  1496.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  1497.  * Tossed by SFToss v1.00b on 92/04/04  13:49:42
  1498.  
  1499. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1500.  
  1501. Conference 4
  1502. Date       04-04-92 12:43:56
  1503. From       Trevor Carlsen
  1504. To         Max Maischein
  1505. Subject    Linked list sorts / Competition ??
  1506.  
  1507.  
  1508.  
  1509.  > I'll wager that the array structure can be sorted MUCH more
  1510.  > quickly if the original base is unsorted.
  1511.  
  1512.  MM> Well ;-)
  1513.  MM> Do you want to sort the pointers in an array or what ? This is much 
  1514.  MM> faster than traversing an existing linked list. But an entry sort
  1515.  MM> ( as he proposed, I think ) would be much faster because there are
  1516.  MM> only comparisions and no shuffles to make. But I'd like to see some
  1517.  MM> code about this ;-)
  1518.  
  1519. An entry sort is still slower as the list has to be traversed once for each
  1520. entry.
  1521.  
  1522.  MM> Or was I a spoilsport by guessing about your sort strategies ???
  1523.  
  1524. No... but you are on the right track! :-)
  1525.  
  1526. TeeCee
  1527.  
  1528. --- TC-ED   v2.01  
  1529.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  1530.  * Tossed by SFToss v1.00b on 92/04/04  13:49:42
  1531.  
  1532. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1533.  
  1534. Conference 4
  1535. Date       04-04-92 12:47:46
  1536. From       Trevor Carlsen
  1537. To         Greg Smith
  1538. Subject    Linked List Sorts
  1539.  
  1540.  
  1541.  
  1542.  GS> And about an hour after I wrote the last message, I changed
  1543.  GS> my wager to agree with you... ;-)  I wasn't thinking of an
  1544.  GS> array of pointers (strange when I use them a lot...), now
  1545.  GS> that will always be faster to sort than a linked list.  Oh
  1546.  GS> well, at least linked lists win in the area of inserting and
  1547.  GS> deleting new elements (most of the time).
  1548.  
  1549. Glad you added those four words in brackets - :-)  With TP's move procedure,
  1550. an array of pointers can still be faster in deleting and adding new elements.
  1551.  
  1552. TeeCee
  1553.  
  1554. --- TC-ED   v2.01  
  1555.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  1556.  * Tossed by SFToss v1.00b on 92/04/04  13:49:42
  1557.  
  1558. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1559.  
  1560. Conference 4
  1561. Date       04-04-92 12:50:38
  1562. From       Trevor Carlsen
  1563. To         Scott Sanbar
  1564. Subject    Keyboard Stuffing
  1565.  
  1566.  
  1567.  
  1568.  > Anyone know of any procedures available that will stuff 
  1569.  > keyscan-codes into the keyboard buffer?
  1570.  
  1571.  SS>  function StuffKey(KeyCode : word) : boolean;
  1572.  
  1573. This is similar in function to code I have posted here previously which I
  1574. had never had any difficulty with.  It is also the same basic method used
  1575. by Turbo Power with their TPro and OPro package which I also assume have worked
  1576. for a long period with no problems.
  1577.  
  1578. It was therefore of interest to me to see that in "Turbo Pascal 6.0 - Techniques
  1579. and Utilities", Rubenking turns off interrupts before doing this.  His explanati
  1580. n would certainly appear to be valid - that we don't want a keyboard interrupt
  1581. happening in the middle of the procedure - but in practice such a routine
  1582. should never occur when that is likely.
  1583.  
  1584. TeeCee
  1585.  
  1586.  
  1587.  
  1588.  
  1589. --- TC-ED   v2.01  
  1590.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  1591.  * Tossed by SFToss v1.00b on 92/04/04  13:49:43
  1592.  
  1593. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1594.  
  1595. Conference 4
  1596. Date       04-04-92 08:07:17
  1597. From       Trevor Carlsen
  1598. To         Darren Lyon
  1599. Subject    Arrays And Pointers
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  DL>    I have an array of 1000 bytes, stored in broad_font
  1605.  DL>    I have a table of twelve pointers, each pointing to
  1606.  DL>    nothin, font_pointers
  1607.  DL>    I have a pointer of 12 bytes, stored as registered_fonts
  1608.  
  1609.  DL>    What I need to do is be able to assign font_pointers[1]
  1610.  DL> the address of the broad_font array, and then set
  1611.  DL> registered_fonts[1] to 1. How do I set up the table of
  1612.  DL> pointers so that they point to nothing, and then point them
  1613.  DL> in to my routine.
  1614.  
  1615. I have read and reread this message of yours about a dozen times and I'm still
  1616. not sure I understand exactly what you are getting at!  However if I'm right
  1617. in what you are trying to do, all that is needed is to set up your variables
  1618. in a contiguous memory area and have one global variable point at that area. 
  1619.  
  1620. From then on everything can be determined as an offset from the start of that
  1621. area. The heap would be the easiest place for this area but it not essential
  1622. for this. This global variable will need to be placed in a unit that appears
  1623. in the uses clause of every unit that needs it.
  1624.  
  1625. Netmail me if I misunderstand the problem.  I'm sure I can help.
  1626.  
  1627. TeeCee
  1628.  
  1629. --- MajikToss v0.07k
  1630.  
  1631.  * Origin: Unknown - added by MajikToss v0.07k (1:3601/14.20)
  1632.  * Tossed by SFToss v1.00b on 92/04/04  18:08:50
  1633.  
  1634. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1635.  
  1636. Conference 4
  1637. Date       04-04-92 08:07:17
  1638. From       Trevor Carlsen
  1639. To         Randall Smith
  1640. Subject    Keeping Users Happy
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  RS> ... It works both ways.  We have a "Users Advisory Committee" for 
  1646.  RS> our vertical niche software.  They tell us how they are using the 
  1647.  RS> software & we try to make it more usable.  Sometimes, they floor us 
  1648.  RS> with how they do things, but often they are doing things the software 
  1649.  
  1650.  RS> doesn't by clever use of the facilities the software DOES provide.  
  1651.  
  1652. I have only once had a user suggested improvement that I have not eventually
  1653. incorporated into my system as a result of the suggestion and that was because
  1654. the requested facility was already available and the user was unaware of that.
  1655.  
  1656. Generally speaking, I find that suggestions or complaints from users are the
  1657. best source of ideas for improving an application.  This becomes more and
  1658. more the case as the application matures.
  1659.  
  1660. TeeCee
  1661.  
  1662. --- MajikToss v0.07k
  1663.  
  1664.  * Origin: Unknown - added by MajikToss v0.07k (1:3601/14.20)
  1665.  * Tossed by SFToss v1.00b on 92/04/04  18:08:50
  1666.  
  1667. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1668.  
  1669. Conference 4
  1670. Date       04-04-92 08:07:17
  1671. From       Trevor Carlsen
  1672. To         William Westlake
  1673. Subject    Variables > 64k
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  > BufType : Array[1..65592] Of Char;
  1679.  WW>  Can't allocate that big a block on the heap. Maximum is 64k 
  1680.  WW> minus a small amout for overhead.
  1681.  
  1682. Where did you get that idea from ... the overhead I mean?  There is no "overhead
  1683.  involved.
  1684.  
  1685. The limit for any structure on the heap is 65520 bytes with TP5 and 65528
  1686. bytes with TP6.  However TP will allow you to declare a structure up to 65535
  1687. bytes without complaining.
  1688.  
  1689. The reason for the limit being < 64K is because of the way pointers are used.
  1690.  If a structure is bigger than the limit you stand the risk of the offset
  1691. portion of the address being "integer wrapped" at runtime, thus producing
  1692. what is really an out-of-range condition which cannot be caught and may cause
  1693. considerable grief.
  1694.  
  1695. Here is a little program, which is safe to run, that demonstrates what happens
  1696. when using TP6 (it would probably lock TP5 up so don't try it with TP5).
  1697.  
  1698. type
  1699.   BigArray = array[1..16383] of longint;
  1700.   BAPtr    = ^BigArray;
  1701. var
  1702.   P        : BAPtr;
  1703.   long     : ^longint;
  1704.   W        : ^word;
  1705.   B        : ^byte;
  1706.   x        : word;
  1707. begin
  1708.   new(long); new(W); new(B);
  1709.   new(P);
  1710.   long^ := 0; W^ := 0; B^ := 0;
  1711.   P^[16383] := $ffffffff;
  1712.   writeln('Long^ = ',long^,' (should be zero)');
  1713.   writeln('W^    = ',W^,' (should be zero)');
  1714.   writeln('B^    = ',B^,' (should be zero)');
  1715.   writeln('Offset of P^[1] is ',ofs(P^[1]));
  1716.   for x := 16382 to 16383 do
  1717.     writeln('Offset of P^[',x,'] is ',ofs(P^[x]));
  1718. end.
  1719.  
  1720. Here is the output from the above (TP5 would be different and the disaster
  1721. worse because TP5's heap granularity is 1 instead of TP6's 8).
  1722.  
  1723. Long^ = 0 (should be zero)
  1724. W^    = 0 (should be zero)
  1725. B^    = 255 (should be zero)
  1726. Offset of P^[1] is 8
  1727. Offset of P^[16382] is 65532
  1728. Offset of P^[16383] is 0
  1729.  
  1730. As you can see B^ is getting clobbered because of integer wrap with the offset
  1731. of P^[16383].  IMHO the TP compiler should catch the error if a structure
  1732. is oversize, but it doesn't.
  1733.  
  1734. TeeCee
  1735.  
  1736. --- MajikToss v0.07k
  1737.  
  1738.  * Origin: Unknown - added by MajikToss v0.07k (1:3601/14.20)
  1739.  * Tossed by SFToss v1.00b on 92/04/04  18:08:51
  1740.  
  1741. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1742.  
  1743. Conference 4
  1744. Date       04-04-92 08:07:17
  1745. From       Trevor Carlsen
  1746. To         Nir Livne
  1747. Subject    Reset In Tp 6
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  RB> Program trash;
  1753.  RB> type
  1754.  RB> datatype = record
  1755.  RB>     blah:blah;
  1756.  RB>     end;
  1757.  RB> datafile = file of datarecord;
  1758.  
  1759.  RB> var
  1760.  RB>   df:datafile;
  1761.  
  1762.  RB> begin
  1763.  RB>     assign(df,'Data.dat');
  1764.  RB>     reset(df)
  1765.  RB>     write(df,data);
  1766.  RB>     close(df);
  1767.  
  1768.  NL> You are just made too complecated way to do it
  1769.  NL> BTW : If you will Reset a file you won't be able to write into it !! 
  1770.  
  1771.  NL>       to write you must ReWrite
  1772.  
  1773. That advice is both incorrect and dangerous. 
  1774.  
  1775. A typed file opened with reset can be both read from and written to.  Any
  1776. file opened with rewrite will have any previous data it contains erased.
  1777.  
  1778. You appear to be confusing typed files with text files which need to be opened
  1779. with rewrite or append in order to be written to.  
  1780.  
  1781. Rewrite erases any previous contents if the file exists or opens a new file
  1782. if it does not; append writes to the end of an existing file or returns an
  1783. I/O error if one does not exist.
  1784.  
  1785. TeeCee
  1786.  
  1787. --- MajikToss v0.07k
  1788.  
  1789.  * Origin: Unknown - added by MajikToss v0.07k (1:3601/14.20)
  1790.  * Tossed by SFToss v1.00b on 92/04/04  18:08:51
  1791.  
  1792. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1793.  
  1794. Conference 4
  1795. Date       04-04-92 08:07:19
  1796. From       Trevor Carlsen
  1797. To         J J Marquez
  1798. Subject    Re: Why Does This Lock Up?
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  JJ>   Normally, the very LAST thing I'd suspect wrong would be the 
  1804.  JJ> compiler itself. However...... I cut your code out, gave it a 
  1805.  JJ> Program Test; 
  1806.  JJ> and executed it twice, all inside a DV window. Here's the output:
  1807.  JJ> Board[7,9] = 2
  1808.  JJ> Board[4,2] = 2
  1809.  JJ> Board[1,1] = 2
  1810.  JJ> Board[7,1] = 1
  1811.  JJ> Board[4,0] = 1
  1812.  JJ> All done
  1813.  JJ>   Looks as though it is running here.
  1814.  
  1815. Bear in mind that the person posting that code did not post what his compiler
  1816. switches were set to.  Yours could well have been different.  Even so you
  1817. were very lucky, although if you are running DV on a 386 it may catch the
  1818. dangerous bits.  Because you only tried it twice the possible danger condition
  1819. did not show up.  Anybody executing code that is reported as causing the sort
  1820. of problems this code was, without first checking it thoroughly, doesn't have
  1821. much respect for their data and should have a very recent backup! :-)
  1822.  
  1823. TeeCee
  1824.  
  1825. --- MajikToss v0.07k
  1826.  
  1827.  * Origin: Unknown - added by MajikToss v0.07k (1:3601/14.20)
  1828.  * Tossed by SFToss v1.00b on 92/04/04  18:08:51
  1829.  
  1830. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1831.  
  1832. Conference 4
  1833. Date       04-04-92 08:07:19
  1834. From       Trevor Carlsen
  1835. To         Harald Harms
  1836. Subject    Var > 64
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  HH> Type  BIGbuf = array[1..65535] of byte;
  1842.  
  1843. See my other post on this subject today.  The above will compile but is dangerou
  1844. .  If a variable of that size is the only structure on the heap and the elements
  1845. 65529..65535 (TP6) or 65521..65535 (TP5) are assigned a value, you trash your
  1846. stack. If there other heap variables declared before it then they are what
  1847. gets clobbered instead of the stack.
  1848.  
  1849. TeeCee
  1850.  
  1851. --- MajikToss v0.07k
  1852.  
  1853.  * Origin: Unknown - added by MajikToss v0.07k (1:3601/14.20)
  1854.  * Tossed by SFToss v1.00b on 92/04/04  18:08:51
  1855.  
  1856. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1857.  
  1858. Conference 4
  1859. Date       04-04-92 08:07:19
  1860. From       Trevor Carlsen
  1861. To         Harald Harms
  1862. Subject    Dates
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  HH> Do you know BIG of a pain it is to calcute the difference in time if 
  1868.  
  1869.  HH> you are working in hours/min/seconds??? I find it a pain, it's not 
  1870.  HH> that its that difficult,but it's a pain. I always work with the packed 
  1871.  
  1872.  HH> time format. Easy to use. I will look up the structure if you need it, 
  1873.  
  1874.  HH> can't remember it of hand. But, if you subtract two packed times, you 
  1875.  
  1876.  HH> will get the difference, just remember that the last one is bigger 
  1877.  HH> than the one before, and that you can't unpack the difference...
  1878.  
  1879. The difference in what?  Subtracting two packed times will certainly NOT give
  1880. any meaningful value.
  1881.  
  1882. To find the difference in seconds between any two times, they must first be
  1883. converted to the number of seconds from a common datum.
  1884.  
  1885. TeeCee
  1886.  
  1887. --- MajikToss v0.07k
  1888.  
  1889.  * Origin: Unknown - added by MajikToss v0.07k (1:3601/14.20)
  1890.  * Tossed by SFToss v1.00b on 92/04/04  18:08:51
  1891.